package cn.tedu.sp06;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

//@SpringCloudApplication  //可以使用这个注解代替下面3个注解

@EnableCircuitBreaker //启用Hystrix断路器
@EnableDiscoveryClient //将这个item服务注册到注册中心    新版本的SpringBoot项目中这个注解可以不写
@SpringBootApplication
public class Sp06RibbonApplication {


    public static void main(String[] args) {
        SpringApplication.run(Sp06RibbonApplication.class, args);
    }

    //创建RestTemplate实例，并把它让spring管理
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){

        SimpleClientHttpRequestFactory f = new SimpleClientHttpRequestFactory();
        f.setConnectTimeout(1000); //默认是-1，表示不启用这个超时设置，即不触发消费者重试连接服务提供者的服务器
        f.setReadTimeout(1000); //默认是-1，表示不启用这个超时设置，即不触发消费者重试连接服务提供者的服务器

        return new RestTemplate();
    }

}
